perm filename NOISP[2,LCS] blob
sn#153766 filedate 1975-04-04 generic text, type T, neo UTF8
00010 SRATE←20830;MAG←512/SRATE;SPEED←13;
00100 COMPILE;INSTRUMENT NOISE;
00200 OSCIL[25](P4,25*MAG/P2,P5);<ENVELOPE
00300 RANDH(P7*MAG,P8*MAG);<P7=BAND WIDTH, P8=RATE
00350 <FOR NOISE MAKE P7=P3, P8=4*P3
00400 OSCIL(U1,P3*MAG+U2,P6);
00500 OUTA←OUTA+U3;END;FINISH;
00600
00700 ARRAY F3,F2(512);
00750 SEG(F3);0 1 1 3 .2 40 .05 70 0 100;
00800 SEG(F2);0 1 1 12 1 66 0 100;
00802 SYNTH(F1);1 1 3 .2 4 .1 999;
00805 SEG(F4);0 0 1 100;
00810 RCDFLG=0;
00900 PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P3*4 ;FINISH;
01000
01100
02000 QQQ ; FILE NOISX
02100 NOISE ;
02200 P2 .5;
02300 P3 NO/PC6/E/G/BF/CS6/FINE*;
02400 P4 1500;
02500 P5 F1;
02600 P6 F2;
02700 P7 P3;
02800 P8 4000;
02900 END;
03000 RUN;
03100
03200
04000 SRATE←20830;MAG←512/SRATE;SPEED←13; < FILE NOIS2
04100 COMPILE;INSTRUMENT NOISE;
04200 OSCIL[25](P4,25*MAG/P2,P5);<ENVELOPE
04300 OSCIL [25] (P7*MAG, 25*MAG/P9, P10); <CHNGS BAND WIDTH
04400 RANDH(U2, P8*MAG);<P7=BAND WIDTH, P8=RATE
04500 <FOR NOISE MAKE P7=P3, P8=4*P3
04600 OSCIL(U1, P3*MAG+U3, P6);
04700 OUTA←OUTA+U4;END;FINISH;
04800
04900 ARRAY F3,F2(512);
05000 SEG(F3);0 1 1 3 .2 40 .05 70 0 100;
05100 SEG(F2);0 1 1 12 1 66 0 100; <ENVELOPE
05200 SYNTH(F1);1 1 3 .2 4 .1 999; <TONE
05300 SEG(F4);0 1 1 100; <RAMP UP
05400 RCDFLG=0;
05500 PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P3*4 P2 F4;FINISH;
05600
05700
08000 SRATE←20830;MAG←512/SRATE;SPEED←13; <FILE NOIS3
08100 COMPILE;INSTRUMENT NOISE;
08200 OSCIL [25] (P4, 25*MAG/P2, P5);<ENVELOPE
08300 EXPEN [25] (P7*MAG, 25*MAG/P9, P10); <CHNGS BAND WIDTH
08400 RANDH(U2, P8*MAG);<P7=BAND WIDTH, P8=RATE
08500 <FOR NOISE MAKE P7=P3, P8=4*P3
08600 OSCIL(U1, P3*MAG+U3, P6);
08700 OUTA←OUTA+U4;END;FINISH;
08800
08900 ARRAY F3,F2(512);
09000 SEG(F3);0 1 1 3 .2 40 .05 70 0 100;
09100 SEG(F2);0 1 1 12 1 66 0 100; <ENVELOPE
09200 SYNTH(F1);1 1 3 .2 4 .1 999; <TONE
09300 SEG(F4);1 1 0 100; <RAMP DOWN
09400 RCDFLG=0;
09500 PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P3*4 P2/2 F4;FINISH;
09600
09700
10000 SRATE←20830;MAG←512/SRATE;SPEED←13; < NOIS4
10100 COMPILE;INSTRUMENT NOISE;
10200 OSCIL[25](P4,25*MAG/P2,P5);<ENVELOPE
10300 OSCIL (P10*MAG, MAG/P8, P9);
10400 RANDI( P7*MAG, U2);
10500 OSCIL(U1, P3*MAG+U3, P6);
10600 OUTA←OUTA+U4;END;FINISH;
10700
10800 SEG(F3);0 1 1 3 .2 40 .05 70 0 100;
10900 SEG(F2);0 1 1 12 1 90 0 100; <ENVELOPE
11000 SYNTH(F1);1 1 3 .2 4 .1 999; <TONE
11100 SEG(F4);0 1 .2 25 1 40 .3 55 0 100; <UP DOWN
11200 RCDFLG=0;
11300 PLAY;NOISE 0 .5 C*8 1000 F2 F1 P3 P2 F4 200;FINISH;
11400
11500
20000 QQQ FILE=PHRAS
20100 CLAR 0 20 ALL;
20200 P2 .05/ P3 MOV/ 2 C1,B4 C1,B4/ 13 C1,E5 C2,B5/ 5 C2,B5 C1,G6*/ P4 200;
20300 P5 F1 /P7 F4 / P10 1;
20400 P12 MOV/ 20 2 8.99*; CHANGES FOR PHRASE NOTE #2.
20500 P13 SUBN NUM/ -1/ -2 *; LAST NOTE WILL GO DOWN 1 OR 2.
20600 P6 MO/10 18 5/ 10 8 18*;
20700 END;
20800
20900 BRIT ;
21000 DUPL 1;
21100 P2 .07;
21200 P3 1 C2 C5;
21300 P8 F5;
21400 P12 MOV/ 10 -10,2/ 10 2,-10*; SETS 2ND NOTE OF PHRASE
21500 P13 SUBN NUM/ 1 / -2 / 5*; FOR THIRD NOTE OF PHRASE.
21600 END;
21700
21800 C******* PHRAS.F4 **** CREATES RANDOM 3-NOTE PHRASES.
21900
22000 C WHEN INS.1 HITS ANY NOTE ABOVE B4 A 3-NOTE PHRASE WILL BEGIN
22100 C WITH INTERVALS SET IN INS.1'S P12 AND P13. DURATIONS OF NOTES
22200 C WILL TRIPLE, ALSO THE AMPLITUDE INCREASES BY 4X.
22300 C AFTER EACH PHRASE THERE WILL BE A GAP OF 10 NOTES AT LEAST
22400 C BEFORE THE NEXT ONE.
22500
22600 C AS INS.1 ENDS A PHRASE INS.2 WILL ALSO START ONE FROM HIS CURRENT
22700 C NOTE -BUT WITH HIS OWN INTERVALS(SET IN P12, P13) AND WITH DURATIONS
22800 C MULTIPLIED BY 5. IF INS.2 ENDS A PHRASE WHILE INS.1 IS PLAYING
22900 C ONE, INS.2 IMMEDIATELY STARTS ANOTHER.
23000
23100 C IF TOTAL TIME IS UP IN MIDDLE OF A PHRASE, IT WILL BE EXTENDED
23200 C SO THE LAST PHRASE MAY FINISH.
23300
23400 SUBROUTINE SUBR
23500 COMMON /INS/ INST(27),BG(60)
23600 COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
23700 C INST=INSTRUMENT NAME, BG=BEGIN TIME OF EACH INST.
23800 C INUM=INST# IPAR=PARAM# BT=BASIC TIME P1 WHEN SUBROUTINE IS
23900 C CALLED, IF IREST IS <0, THAT NOTE WILL BE A REST.
24000 C DUR=FINAL DURATION OF EACH INST. IF DUR IS IN TERMS OF A
24100 C NUMBER OF NOTES(NOT TIME) THE DUR NUMBER WILL BE
24200 C 10000+THE NUMBER OF NOTES.
24300
24400 C NOTE #S IN SUBROUTINE: (1-84) C4=37 FS4=43 C5=49 F1=86
24500 C F15=100 (NO F16!)
24600
24700
24800
24900 GO TO (1,2),INUM
25000
25100 1 IF(CNT(1).GT.1)GO TO 3
25200 J=0
25300 K=0
25400 C INITIALIZE THE COUNTERS
25500
25600 3 X=3
25700 AMP=4
25800 C THE P2 AND P4 MULTIPLIERS
25900
26000 M=M-1
26100 C COUNTER TO CAUSE GAP OF NUMB. OF NOTES SET IN P6.
26200
26300 IF(J.NE.0)GO TO 4
26400 C JUMP IF IN MIDDLE OF PHRASE.
26500 N1=P(3)
26600 C PICKUP INTEGER PITCH NUMB.
26700
26800 IF(N1.LT.49.OR.M.GE.0)RETURN
26900 C START A PHRASE ONLY IF THE NOTE IS HIGHER THAN B4 AND GAP FINISHED.
27000
27100 J=1
27200 C START THE COUNTER
27300
27400 7 IF(DUR(INUM).LT.P(1)+P(2)*X*3)DUR(INUM)=P(1)+P(2)*X*3-.001
27500 C EXTENDS DURATION SO A PHRASE MAY FINISH AT END.
27600
27700 P(5)=95
27800 C ATTACK OF PHRASE -- F10
27900
28000 6 P(4)=P(4)*AMP
28100 C MAKE IT AUDIBLE
28200
28300 P(2)=P(2)*X
28400 C STRETCH THE NOTE DURATION.
28500 RETURN
28600
28700 4 IF(J.EQ.2)GO TO 5
28800 C JUMP IF END OF PHRASE
28900 J=2
29000 C UPDATE COUNTER
29100
29200 P(3)=P(12)+N1
29300 C SET SECOND NOTE OF PHRASE.
29400
29500 8 P(5)=96
29600 C ENV. FOR MIDDLE OF PHRASE -- F11
29700 GO TO 6
29800
29900 5 P(3)=P(13)+N1
30000 C SET LAST NOTE OF PHRASE
30100 J=0
30200 C RESET THE COUNTER
30300
30400 IF(K.EQ.0)K=1
30500 C START CONTER FOR SECOND INST. IF HE'S NOT BUSY
30600
30700 M=P(6)
30800 C SET GAP COUNTER - FIND IT IN P6
30900
31000 9 P(5)=97
31100 C ENV. FOR END OF PHRASE -- F12
31200
31300 GO TO 6
31400
31500 C**** NEXT FOR INST. 2
31600 2 IF(K.EQ.0)RETURN
31700 C RETURN IF NO PHRASE GOING ON IN EITHER INST.
31800
31900 K=K+1
32000 C UPDATE THE COUNTER
32100
32200 X=5
32300 AMP=5
32400 C P2 AND P4 MULTIPLIERS. (5 TIMES THE NORMAL DURATION.)
32500
32600 GO TO (11,12,13),K-1
32700 11 N2=P(3)
32800 C GET PITCH FOR START OF PHRASE.
32900 GO TO 7
33000 C GO DO OTHER NECESSARY THINGS
33100
33200 12 P(3)=P(12)+N2
33300 C SET SECOND NOTE OF PHRASE
33400 GO TO 8
33500 C GO DO OTHER NECESSARY THINGS
33600
33700 13 P(3)=P(13)+N2
33800 C LAST NOTE OF PHRASE.
33900
34000 K=0
34100 C RESET COUNTER
34200 GO TO 9
34300 END
34400